perm filename MIXRUN[MIX,SYS] blob
sn#030856 filedate 1973-03-16 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 MIXRUN is the section which does all the stuff for
00006 00003 t←←10
00013 00004 DUMP ROUTINE
00017 00005 *RES* An attempt to increase the utility of the DUMP and
00025 00006 STROP: [ASCIZ NOP ]
00031 00007 STRP05: [ASCIZ NUM ]
00035 ENDMK
⊗;
COMMENT ⊗ MIXRUN is the section which does all the stuff for
the RUN file. This file keeps a running record of
the status of the machine during execution.
⊗
QRUN: INIT 1, 0 ; init in ASCII mode
SIXBIT /DSK/
XWD RUNBLK, 0
JRST ZDISK
PUSHJ P,RESCN ;*RES* SEE IF FILE ON PREV LINE
PUSHJ P,FINFI2 ;*RES* LOOK IT UP
JRST .+3 ;*RES*
OUTSTR [ASCIZ ⊗FILE FOR TRACE OUTPUT: ⊗] ; get file name
FINFO
MOVE 10, [XWD BLK, RUNBLK+3]
BLT 10, RUNBLK+6
ENTER 1, RUNBLK+3 ; ENTER THE FILE
JRST .-5 ; error → try again
PUSHJ P, PAGBEG ; initialize the file
MOVNI 10, =4000 ; and zero out MAGIC counters
HRRZS MAGIC+=4000(10)
AOJL 10, .-1
JRST QRNC1
QRUNC: SETZ 10,
PUSHJ P,RESCN ;*RES* SEE IF TIMES GIVEN ON PREV LINE
MOVE 11,RECHAR ;*RES* PICK UP FIRST CHAR
JRST QRNC2 ;*RES*
QRNC1: OUTSTR [ASCII ⊗MAXIMUM PRINT TIME = ⊗]
INCHWL 11
SKIPA
INCHRW 11
CAIN 11, 15
JRST .+5
QRNC2: ANDI 11, 17
IMULI 10, =10
ADD 10, 11
JRST .-6
MOVEM 10, RUNC
INCHRW 10
CAIE 10, 12
JRST .-2
JRST BUTTON
QRUNX: RELEAS 1, 0 ; close and release channel
SETZM RUNC ; zero out RUNC
JRST BUTTON ; return to BUTTON mode
RUNBLK: BLOCK 7
ISPEC: 0 ; will hold value of PC before execution of instruction
MSPEC: 0 ; will hold value of M
RUNC: 0 ; will hold maximum print time
THISC: 0 ; will hold count for this instruction
CONTNT: 0 ; will hold contents of word addressed by MSPEC
DOTS: -1 ; will hld number of times that some line wasn't outputed
LINENO: 0
SAVEF: 0
MAGIC: BLOCK =4000 ; will hold the magic diagnostic bits
PUTCHR: SOSG RUNBLK+2
OUT 1,
JRST .+2
JRST ZDISK
IDPB 10, RUNBLK+1
POPJ P,
OPDEF PUTDEC [PUSHJ P, .]
ANDI 13, 17
PTDC0: IDIVI 10, =10
ADDI 11, 60
HRLM 11, (P)
SOSLE 13
PUSHJ P, PTDC0
HLRZ 10, (P)
JRST PUTCHR
DEFINE PUTSTR (X)
{ PUSH P, [POINT 7, X]
PUSHJ P, PTSTR0
}
PTSTR0: ILDB 10, -1(P)
JUMPN 10, .+3
POP P, -1(P)
POPJ P,
PUSHJ P, PUTCHR
JRST PTSTR0
OPDEF BIT1 [1B1]
t←←10
k←←13
z←←12
RUACSV: BLOCK 17 ;SAFE STORAGE FOR AC'S
DORUN:
MOVEM 16,RUACSV+16
MOVEI 16,RUACSV
BLT 16,RUACSV+15
MOVE 10, ISPEC ; increase count for this instruction
MOVE 11, JBUSX ; this is the number of times JBUS * executed
ADDM 11, MAGIC(10) ; so that should be the updated count
AOS MAGIC(10)
HRRZ 10, MAGIC(10) ; is it too many?
SUB 10, JBUSX ; but want 10 to be only a single increment
MOVEM 10, THISC ; save the count
HRRZ 11, ERRORC ; check if any errors
JUMPG 11, .+3
CAMLE 10, RUNC
JRST RUNDOT
AOSG T, DOTS ; was previous line dots?
JRST NODOTS ; no
MOVEI 13, 6 ; output last six digits of number of dots
PUTDEC
PUTSTR <[ASCIZ ⊗
⊗]>
SOS LINENO
NODOTS: SETOM DOTS ; reset DOTS to -1
MOVE 10, MSPEC
CAIL 10, 0
CAILE 10, =3999
SKIPA 10, [0]
MOVE 10, MC0000(10)
MOVEM 10, CONTNT
SOSG LINENO ; end-of-page?
PUSHJ P, PAGEND
MOVE 10,EXTIME ;*RES* PUT OUT TRACE INFORMATION
MOVEI 13,6 ; STARTING WITH EXECUTION TIME
PUTDEC
MOVEI 10,40
PUSHJ P,PUTCHR
MOVE 10,ISPEC ;NOW DO PROGRAM COUNTER
MOVEI 13,4
PUTDEC
MOVEI 10,40
PUSHJ P,PUTCHR
MOVE 10,THISC ;GET COUNT OF EXECUTIONS FOR THIS LOC
MOVEI 13,2
PUTDEC
MOVEI 10,40
PUSHJ P,PUTCHR
MOVEM INSTR,VALYOU ;PUT OUT INSTRUCTION WORD
MOVE 10,IMASK ; IN PROPER FORMAT
MOVEM 10,MASK
PUSHJ P,VALOUT
LDB T+1,[POINT 6,INSTR,29] ;GET FIELD SPECIFICATION
LDB K,[POINT 6,INSTR,35] ;AND OP CODE
PUTSTR <@STROP(K)> ;PUT OUT OP CODE MNEMONIC
MOVEI 10,40
PUSHJ P,PUTCHR ;AND ANOTHER BLANK
MOVE 10,MSPEC ;GET EFFECTIVE ADDRESS
MOVEM 10,VALYOU ;PUT IT OUT
MOVE 10,IRMASK ; AS A 2 BYTE INTEGER
MOVEM 10,MASK
PUSHJ P,VALOUT
MOVE 10,BMASK ;THE NEXT 2 OR 3 THINGS WRITTEN BYTEWISE
MOVEM 10,MASK
LDB 10,[POINT 6,INSTR,35] ;GET OP CODE
SKIPE PRNCNT(10) ;SEE IF CONTENTS IS TO BE PRINTED
JRST DOCNTN ;YES
MOVEI 13,=12 ;GET # OF BLANKS DESIRED
MOVEI 10,40
PUSHJ P,PUTCHR
SOJG 13,.-1 ;PUT BLANKS IN OUTPUT LINE
JRST NOCNTN
DOCNTN: MOVE 10,CONTNT ;GET CONTENTS OF EFFECTIVE ADDRESS
MOVEM 10,VALYOU
PUSHJ P,VALOUT ;PRINT CONTENTS
NOCNTN: MOVEM RA,VALYOU ;PUT OUT REGISTER A
PUSHJ P,VALOUT
MOVEM RX,VALYOU
PUSHJ P,VALOUT ;PUT OUT REGISTER X
MOVE 10,IRMASK ;CHANGE MASK FOR INDEX REGISTERS
MOVEM 10,MASK
MOVEM R1,VALYOU
PUSHJ P,VALOUT
MOVEM R2,VALYOU
PUSHJ P,VALOUT
MOVEM R3,VALYOU
PUSHJ P,VALOUT
MOVEM R4,VALYOU
PUSHJ P,VALOUT
MOVEM R5,VALYOU
PUSHJ P,VALOUT
MOVEM R6,VALYOU
PUSHJ P,VALOUT
MOVE 10,RJ ;PUT OUT J REGISTER
MOVEI 13,4
PUTDEC
MOVEI 10,40
PUSHJ P,PUTCHR
LINEND: MOVEI T, 40 ; init to space
MOVE FLAGS,RUACSV+FLAGS ;PICK UP SAVED FLAG VALUE
TLNE FLAGS, OVFLAG ; OVFLAG on?
MOVEI T, "X" ; yes
PUSHJ P, PUTCHR ; output it
MOVEI T,40
PUSHJ P,PUTCHR ;PUT OUT A BLANK TO SEPARATE
TLNE FLAGS, GFLAG ; is G on?
MOVEI T, "G" ; yes
TLNE FLAGS, EFLAG ; is E on?
MOVEI T, "E" ; yes
TLNE FLAGS, LFLAG ; is L on?
MOVEI T, "L" ; yes
PUSHJ P, PUTCHR ; output it (AT MOST 1 CAN BE ON)
PUTSTR <[ASCIZ ⊗
⊗]>
MOVSI 16,RUACSV ;RESTORE REGISTERS
BLT 16,16
POPJ P, ; return
RUNDOT: AOSG DOTS ; only output if first unprinted line
PUSHJ P, [PUTSTR <[ASCIZ ⊗........⊗]>
POPJ P,]
MOVSI 16,RUACSV
BLT 16,16 ;RESTORE REGISTERS
POPJ P,
PAGEND: MOVEI T, 14 ; form-feed
PUSHJ P, PUTCHR
PAGBEG: PUTSTR TITLE1
PUTSTR TITLE2
MOVEI T, =45
MOVEM T, LINENO
POPJ P,
TITLE1: ASCIZ ⊗
EXTIME _LOC ## ___INSTRUCTION__ __M__ __CONTENTS_ _____rA____ _____rX____⊗
TITLE2: ASCIZ ⊗ _rI1_ _rI2_ _rI3_ _rI4_ _rI5_ _rI6_ _rJ_ O C
⊗
PRNCNT: ;NON-ZERO MEANS PRINT CONTENTS FOR THIS OP CODE
0 ; 0
REPEAT =4,{1} ; 1 - 4
REPEAT =3,{0} ; 5 - 7
REPEAT =26,{1} ; 8 - 33
REPEAT =22,{0} ; 34 - 55
REPEAT =8,{1} ; 56 - 63
COMMENT ⊗ DUMP ROUTINE ⊗
ENDRUN:
SETZM DMIN
MOVEI 10,=3999
MOVEM 10,DMAX
MOVE 10,BMASK
MOVEM 10,DFALTM
DUMP:
MOVEI 10, 14
PUSHJ P, PUTCHR
PUTSTR <[ASCIZ ⊗
DUMP OF NON-ZERO LOCATIONS
_LOC ## +0 ## +1 ## +2 ## +3 ## +4
⊗]>
PUTSTR MSKMSG
PUSHJ P,PMASK ;PRINT MASK DESCRIPTION
PUTSTR <[ASCIZ /
/]>
MOVE Z,DMIN ;GET BOTTOM OF DUMP RANGE
NEXTRY: HRRZ T, MAGIC(Z)
SKIPN T
SKIPE MC0000(Z)
PUSHJ P, THISET
AOJ Z,
CAMG Z, DMAX
JRST NEXTRY
MOVEI 10, 14
PUSHJ P, PUTCHR
SETZM LINENO
JRST BUTTON
THISET: MOVE T, Z
IDIVI T, 5
IMULI T, 5
MOVE Z, T
MOVEI K, 4
MOVEM K, ZZ
PUTDEC
MOVEI T, ":"
PUSHJ P, PUTCHR
PUTSTR <[ASCIZ ⊗ ⊗]>
PUSHJ P, ENDRNZ
SOSL ZZ
AOJA Z, .-2
PUTSTR <[ASCIZ ⊗
⊗]>
POPJ P,
ZZ: 0
MSKMSG: ASCIZ / BYTE GROUPING FOR NON-EXECUTED LOCATIONS: /
ENDRNZ:
HRRZ T, MAGIC(Z)
MOVEI K, 6
PUTDEC
MOVEI T, 40
PUSHJ P, PUTCHR
MOVE K,MC0000(Z)
MOVEM K,VALYOU ;SAVE VALUE FOR VALOUT ROUTINE
HRRZ T, MAGIC(Z)
JUMPE T, NOTEX
MOVE T,IMASK
MOVEM T,MASK
PUSHJ P,VALOUT ;WRITE WITH BYTES GROUPED AS INSTR
MOVEI T," " ;FOLLOWED BY ANOTHER BLANK
PUSHJ P,PUTCHR
POPJ P,
NOTEX: MOVE T,DFALTM ;GET DEFAULT MASK
MOVEM T,MASK
PUSHJ P,VALOUT
MOVEI K,=11 ;GET STANDARD SIZE + 1
SUB K,PICSIZ ;SUB SIZE OF PRINTED MASKED OUTPUT
SKIPA T,[40] ;GET A BLANK
PUSHJ P,PUTCHR
SOJGE K,.-1 ;FILL OUT FIELD WITH BLANKS
POPJ P,
COMMENT ⊗ *RES* An attempt to increase the utility of the DUMP and
TRACE routines by allowing other formats for printing information.
⊗
BEGIN MSPARS
COMMENT ⊗ MSPARS, routine to parse a mask description of the form:
<mask>::= t | <mask>t
t::= n | (n)
n::= 1 | 2 | 3 | 4 | 5
When MSPARS is called, the first char of the description is
in register 10. Subsequent chars are obtained from the TTY by INCHWL.
On exit, locaton MASK contains the mask and register 13 contains the
total "length" (in bytes) of the masked information. The mask consists
of 4 bit bytes, each conataining an (visible/invisible) bit and a 3
bit number of bytes. A zero byte ends the mask.
⊗
↑MSPARS: ;PARSE A MASK DESCRIPTION
MOVE 13,[POINT 4,MASK]
MOVEM 13,MSKPTR ;SET UP POINTER TO MASK
SETZB 13,MASK
JRST MSP1A ;DON'T READ THE FIRST TIME
MSP1: INCHWL 10 ;GET THE NEXT CHAR
CAIN 10,40 ;IGNORE BLANKS
JRST .-2
MSP1A: CAIE 10,"(" ;IS THIS GROUP INVISIBLE?
JRST MSP3 ;NO
INCHWL 10 ;GET NUMBER OF BYTES
CAIN 10,40
JRST .-2 ;IGNORE BLANKS
CAIG 10,"5" ;SHOULD BE A DIGIT BETWEEN 1 AND 5
CAIGE 10,"1"
JRST MSP2 ;IT WASN'T
SUBI 10,"0"-10 ;CONVERT TO OCTAL AND ADD BIT 10
IDPB 10,MSKPTR ;STORE PATTERN
ADDI 13,-10(10) ;UPDATE SIZE
INCHWL 10
CAIN 10,40
JRST .-2
CAIN 10,")" ;LOOK FOR CLOSING )
JRST MSP1 ;FOUND IT
MSP2: OUTSTR [ASCIZ /ILLEGAL MASK DESCRIPTION
/]
JRST QBUTN ;READ TO END OF LINE AND GO TO BUTTON
MSP3: CAIG 10,"5" ;END OF DESCRIPTION OF NOT DIGIT
CAIGE 10,"1"
POPJ P,
SUBI 10,"0" ;CONVERT TO OCTAL
ADD 13,10
IDPB 10,MSKPTR ;STORE DESCRIPTION
JRST MSP1 ;LOOK SOME MORE
↑MSKPTR: 0
↑MASK: 0
BEND MSPARS
DFALTM: 0 ;LOCATION OF THE DEFAULT MASK FOR DUMP
IMASK: BYTE (4)2,1,1,1 ;INSTRUCTION MASK
BMASK: BYTE (4)1,1,1,1,1 ;BYTE MASK
DMASK: BYTE (4)5 ;DECIMAL MASK
IRMASK: BYTE (4)13,2 ;INDEX REGISTER MASK
BEGIN VALOUT
COMMENT ⊗ Output the value in location VALYOU as specified by the mask
in locaton MASK.
⊗
↑VALOUT: ;OUTPUT (TO TRACE FILE) A VALUE
PUSH P,10
PUSH P,11
PUSH P,12
PUSH P,13
SETZM PICSIZ ;COLLECT SIZE OF PRINTED OUTPUT
MOVEI 10,"+" ;GET THE SIGN TO PUT OUT
SKIPGE VALYOU
MOVEI 10,"-" ;CHANGE IF NEGATIVE
PUSHJ P,PUTCHR
MOVE 10,[POINT 4,MASK]
MOVEM 10,MSKPTR
MOVE 10,[POINT 6,VALYOU,5] ;SET UP POINTERS
MOVEM 10,VALPTR#
VAL1: ILDB 12,MSKPTR ;GET BYTE COUNT
JUMPE 12,VAL3 ;QUIT IF OUT OF BYTES
TRZN 12,10 ;ARE THESE INVISIBLE?
JRST VAL2 ;NO
IBP VALPTR ;MOVE PAST BYTES
SOJG 12,.-1
JRST VAL1 ;LOOK AT NEXT FIELD
VAL2: SETZB 10,13 ;INITIALIZE REGISTERS
VAL2A: ILDB 11,VALPTR ;GET NEXT BYTE
ADDI 13,2 ;INCREASE FIELD SIZE
LSH 10,6 ;COLLECT NUMBER
ADD 10,11
SOJG 12,VAL2A ;GET REQUISITE NUMBER OF BYTES
ADDM 13,PICSIZ
;
; NOW WRITE OUT NUMBER IN 10 WITH (13) DIGITS
;
PUTDEC
JRST VAL1 ;GO TO NEXT FIELD
VAL3: MOVEI 10,40
PUSHJ P,PUTCHR ;PUT BLANK AT END
POP P,13
POP P,12
POP P,11
POP P,10
POPJ P,
↑VALYOU: 0
↑PICSIZ: 0
BEND VALOUT
BEGIN RANGE
COMMENT ⊗ Routine to obtain the desired dump range from the TTY. Ranges are
of the form n:n. The default range is 0:3999. On exit, the range is in
locations DMIN and DMAX and the next input character is in 10.
Register 11 is modified by this routine.
⊗
↑RANGE:
MOVEI 11,=3999 ;INITIALIZE RANGE
MOVEM 11,DMAX
PUSHJ P,RGNUM ;LOOK FOR A NUMBER
MOVEM 11,DMIN ;MOVE 0 OR NUMBER TO DMIN
CAIN 10,":" ;IS A RANGE SPECIFIED
JRST RNG1 ;YES
SKIPE NFOUND ;WAS THERE A NUMBER AT ALL
MOVEM 11,DMAX ;YES, A SINGLE LOCATION TO DUMP
POPJ P, ;NO
RNG1: PUSHJ P,RGNUM ;GET UPPER BOUND
MOVEM 11,DMAX ;STORE IT
POPJ P, ;RETURN
RGNUM:
SETZ 11,
SETZM NFOUND# ;NO NUMBER FOUND YET
RG1: INCHWL 10
CAIN 10,40
JRST .-2 ;GET A NON-BLANK CHARACTER
CAIG 10,"9"
CAIGE 10,"0" ;IS IT A DIGIT?
JRST RG2 ;NO
IMULI 11,=10
ADDI 11,-"0"(10) ;ACCUMULATE NUMBER
SETOM NFOUND
JRST RG1
RG2: CAIL 11,=4000 ;IS IT A VALID ADDRESS
MOVEI 11,=3999 ;GIVE TOP OF CORE IF TOO BIG
SKIPA
INCHWL 10 ;GET NEXT CHAR
CAIN 10,40 ;GET NEXT NON-BLANK CHAR
JRST .-2
POPJ P,
JRST QBUTN
↑DMIN: 0
↑DMAX: 0
BEND RANGE
BEGIN PMASK
COMMENT ⊗ PRINT MASK DESCRIPTION TO TRACE FILE ⊗
↑PMASK: PUSH P,10 ;SAVE REGISTERS
PUSH P,11
PUSH P,13
SETZM PICSIZ
MOVE 11,[POINT 4,DFALTM] ;GET MASK
DMP1: ILDB 13,11 ;GET MASK ENTRY
JUMPE 13,DMP3 ;QUIT IF END OF MASK
TRZN 13,10 ;IS IT VISIBLE
JRST DMP2 ;YES
MOVEI 10,"("
PUSHJ P,PUTCHR
MOVEI 10,60(13)
PUSHJ P,PUTCHR
MOVEI 10,")"
PUSHJ P,PUTCHR
MOVEI 10,3 ;UPDATE SIZE OF PRINTED MASK
ADDM 10,PICSIZ
JRST DMP1
DMP2: MOVEI 10,60(13)
PUSHJ P,PUTCHR
AOS PICSIZ
JRST DMP1 ;LOOK AT NEXT MASK ENTRY
DMP3: POP P,13 ;RESTORE REGISTERS
POP P,11
POP P,10
POPJ P,
BEND PMASK
STROP: [ASCIZ ⊗NOP ⊗]
[ASCIZ ⊗ADD ⊗]
[ASCIZ ⊗SUB ⊗]
[ASCIZ ⊗MUL ⊗]
[ASCIZ ⊗DIV ⊗]
@STRP05(T+1)
@STRP06(T+1)
[ASCIZ ⊗MOVE⊗]
[ASCIZ ⊗LDA ⊗]
[ASCIZ ⊗LD1 ⊗]
[ASCIZ ⊗LD2 ⊗]
[ASCIZ ⊗LD3 ⊗]
[ASCIZ ⊗LD4 ⊗]
[ASCIZ ⊗LD5 ⊗]
[ASCIZ ⊗LD6 ⊗]
[ASCIZ ⊗LDX ⊗]
[ASCIZ ⊗LDAN⊗]
[ASCIZ ⊗LD1N⊗]
[ASCIZ ⊗LD2N⊗]
[ASCIZ ⊗LD3N⊗]
[ASCIZ ⊗LD4N⊗]
[ASCIZ ⊗LD5N⊗]
[ASCIZ ⊗LD6N⊗]
[ASCIZ ⊗LDXN⊗]
[ASCIZ ⊗STA ⊗]
[ASCIZ ⊗ST1 ⊗]
[ASCIZ ⊗ST2 ⊗]
[ASCIZ ⊗ST3 ⊗]
[ASCIZ ⊗ST4 ⊗]
[ASCIZ ⊗ST5 ⊗]
[ASCIZ ⊗ST6 ⊗]
[ASCIZ ⊗STX ⊗]
[ASCIZ ⊗STJ ⊗]
[ASCIZ ⊗STZ ⊗]
[ASCIZ ⊗JBUS⊗]
[ASCIZ ⊗IOC ⊗]
[ASCIZ ⊗IN ⊗]
[ASCIZ ⊗OUT ⊗]
[ASCIZ ⊗JRED⊗]
@STRP39(T+1)
@STRP40(T+1)
@STRP41(T+1)
@STRP42(T+1)
@STRP43(T+1)
@STRP44(T+1)
@STRP45(T+1)
@STRP46(T+1)
@STRP47(T+1)
@STRP48(T+1)
@STRP49(T+1)
@STRP50(T+1)
@STRP51(T+1)
@STRP52(T+1)
@STRP53(T+1)
@STRP54(T+1)
@STRP55(T+1)
[ASCIZ ⊗CMPA⊗]
[ASCIZ ⊗CMP1⊗]
[ASCIZ ⊗CMP2⊗]
[ASCIZ ⊗CMP3⊗]
[ASCIZ ⊗CMP4⊗]
[ASCIZ ⊗CMP5⊗]
[ASCIZ ⊗CMP6⊗]
[ASCIZ ⊗CMPX⊗]
βe↓VSTRP05: [ASCIZ ⊗NUM ⊗]
[ASCIZ ⊗CHAR⊗]
[ASCIZ ⊗HLT ⊗]
STRP06: [ASCIZ ⊗SLA ⊗]
[ASCIZ ⊗SRA ⊗]
[ASCIZ ⊗SLAX⊗]
[ASCIZ ⊗SRAX⊗]
[ASCIZ ⊗SLC ⊗]
[ASCIZ ⊗SRC ⊗]
[ASCIZ ⊗SLB ⊗]
[ASCIZ ⊗SRB ⊗]
STRP39: [ASCIZ ⊗JMP ⊗]
[ASCIZ ⊗JSJ ⊗]
[ASCIZ ⊗JOV ⊗]
[ASCIZ ⊗JNOV⊗]
[ASCIZ ⊗JL ⊗]
[ASCIZ ⊗JE ⊗]
[ASCIZ ⊗JG ⊗]
[ASCIZ ⊗JGE ⊗]
[ASCIZ ⊗JNE ⊗]
[ASCIZ ⊗JLE ⊗]
STRP40: [ASCIZ ⊗JAN ⊗]
[ASCIZ ⊗JAZ ⊗]
[ASCIZ ⊗JAP ⊗]
[ASCIZ ⊗JANN⊗]
[ASCIZ ⊗JANZ⊗]
[ASCIZ ⊗JANP⊗]
[ASCIZ ⊗JAE ⊗]
[ASCIZ ⊗JAO ⊗]
STRP41: [ASCIZ ⊗J1N ⊗]
[ASCIZ ⊗J1Z ⊗]
[ASCIZ ⊗J1P ⊗]
[ASCIZ ⊗J1NN⊗]
[ASCIZ ⊗J1NZ⊗]
[ASCIZ ⊗J1NP⊗]
[ASCIZ ⊗J1E ⊗]
[ASCIZ ⊗J1O ⊗]
STRP42: [ASCIZ ⊗J2N ⊗]
[ASCIZ ⊗J2Z ⊗]
[ASCIZ ⊗J2P ⊗]
[ASCIZ ⊗J2NN⊗]
[ASCIZ ⊗J2NZ⊗]
[ASCIZ ⊗J2NP⊗]
[ASCIZ ⊗J2E ⊗]
[ASCIZ ⊗J2O ⊗]
STRP43: [ASCIZ ⊗J3N ⊗]
[ASCIZ ⊗J3Z ⊗]
[ASCIZ ⊗J3P ⊗]
[ASCIZ ⊗J3NN⊗]
[ASCIZ ⊗J3NZ⊗]
[ASCIZ ⊗J3NP⊗]
[ASCIZ ⊗J3E ⊗]
[ASCIZ ⊗J3O ⊗]
STRP44: [ASCIZ ⊗J4N ⊗]
[ASCIZ ⊗J4Z ⊗]
[ASCIZ ⊗J4P ⊗]
[ASCIZ ⊗J4NN⊗]
[ASCIZ ⊗J4NZ⊗]
[ASCIZ ⊗J4NP⊗]
[ASCIZ ⊗J4E ⊗]
[ASCIZ ⊗J4O ⊗]
STRP45: [ASCIZ ⊗J5N ⊗]
[ASCIZ ⊗J5Z ⊗]
[ASCIZ ⊗J5P ⊗]
[ASCIZ ⊗J5NN⊗]
[ASCIZ ⊗J5NZ⊗]
[ASCIZ ⊗J5NP⊗]
[ASCIZ ⊗J5E ⊗]
[ASCIZ ⊗J5O ⊗]
STRP46: [ASCIZ ⊗J6N ⊗]
[ASCIZ ⊗J6Z ⊗]
[ASCIZ ⊗J6P ⊗]
[ASCIZ ⊗J6NN⊗]
[ASCIZ ⊗J6NZ⊗]
[ASCIZ ⊗J6NP⊗]
[ASCIZ ⊗J6E ⊗]
[ASCIZ ⊗J6O ⊗]
STRP47: [ASCIZ ⊗JXN ⊗]
[ASCIZ ⊗JXZ ⊗]
[ASCIZ ⊗JXP ⊗]
[ASCIZ ⊗JXNN⊗]
[ASCIZ ⊗JXNZ⊗]
[ASCIZ ⊗JXNP⊗]
[ASCIZ ⊗JXE ⊗]
[ASCIZ ⊗JXO ⊗]
STRP48: [ASCIZ ⊗INCA⊗]
[ASCIZ ⊗DECA⊗]
[ASCIZ ⊗ENTA⊗]
[ASCIZ ⊗ENNA⊗]
STRP49: [ASCIZ ⊗INC1⊗]
[ASCIZ ⊗DEC1⊗]
[ASCIZ ⊗ENT1⊗]
[ASCIZ ⊗ENN1⊗]
STRP50: [ASCIZ ⊗INC2⊗]
[ASCIZ ⊗DEC2⊗]
[ASCIZ ⊗ENT2⊗]
[ASCIZ ⊗ENN2⊗]
STRP51: [ASCIZ ⊗INC3⊗]
[ASCIZ ⊗DEC3⊗]
[ASCIZ ⊗ENT3⊗]
[ASCIZ ⊗ENN3⊗]
STRP52: [ASCIZ ⊗INC4⊗]
[ASCIZ ⊗DEC4⊗]
[ASCIZ ⊗ENT4⊗]
[ASCIZ ⊗ENN4⊗]
STRP53: [ASCIZ ⊗INC5⊗]
[ASCIZ ⊗DEC5⊗]
[ASCIZ ⊗ENT5⊗]
[ASCIZ ⊗ENN5⊗]
STRP54: [ASCIZ ⊗INC6⊗]
[ASCIZ ⊗DEC6⊗]
[ASCIZ ⊗ENT6⊗]
[ASCIZ ⊗ENN6⊗]
STRP55: [ASCIZ ⊗INCX⊗]
[ASCIZ ⊗DECX⊗]
[ASCIZ ⊗ENTX⊗]
[ASCIZ ⊗ENNX⊗]